.\" Man page generated from reStructuredText.
.
.
.nr rst2man-indent-level 0
.
.de1 rstReportMargin
\\$1 \\n[an-margin]
level \\n[rst2man-indent-level]
level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
-
\\n[rst2man-indent0]
\\n[rst2man-indent1]
\\n[rst2man-indent2]
..
.de1 INDENT
.\" .rstReportMargin pre:
. RS \\$1
. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin]
. nr rst2man-indent-level +1
.\" .rstReportMargin post:
..
.de UNINDENT
. RE
.\" indent \\n[an-margin]
.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]]
.nr rst2man-indent-level -1
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
.TH "SOZIP" "1" "Feb 08, 2024" "" "GDAL"
.SH NAME
sozip \- Generate a seek-optimized (SOZip) file.
.sp
New in version 3.7.

.SH SYNOPSIS
.INDENT 0.0
.INDENT 3.5
.sp
.nf
.ft C
sozip [\-\-help] [\-\-help\-general]
      [\-\-quiet|\-\-verbose]
      [[\-g|\-\-grow] | [\-\-overwrite]]
      [\-r|\-\-recurse\-paths]
      [\-j|\-\-junk\-paths]
      [\-l|\-\-list]
      [\-\-optimize\-from=<input.zip>]
      [\-\-validate]
      [\-\-enable\-sozip={auto|yes|no}]
      [\-\-sozip\-chunk\-size=<value>]
      [\-\-sozip\-min\-file\-size=<value>]
      [\-\-content\-type=<value>]
      <zip_filename> [<filename>]...
.ft P
.fi
.UNINDENT
.UNINDENT
.SH DESCRIPTION
.sp
The \fBsozip\fP utility can be used to:
.INDENT 0.0
.IP \(bu 2
create a \fI\%SOZip (Seek\-Optimized ZIP)\fP file
.IP \(bu 2
append files to an existing ZIP/SOZip file
.IP \(bu 2
list the contents of a ZIP/SOZip file
.IP \(bu 2
validate a SOZip file
.IP \(bu 2
convert an existing Zip file in a SOZip optimized one
.UNINDENT
.INDENT 0.0
.TP
.B \-\-help
Show this help message and exit
.UNINDENT
.INDENT 0.0
.TP
.B \-\-help\-general
Gives a brief usage message for the generic GDAL commandline options and exit.
.UNINDENT
.INDENT 0.0
.TP
.B \-\-quiet
Quiet mode. No progress message is emitted on the standard output.
.UNINDENT
.INDENT 0.0
.TP
.B \-\-verbose
Verbose mode.
.UNINDENT
.INDENT 0.0
.TP
.B \-g
.UNINDENT
.INDENT 0.0
.TP
.B \-\-grow
Grow an existing zip file with the content of the specified filename(s).
This is the default mode of the utility. This switch is here for
compatibility with Info\-ZIP \fBzip\fP utility
.UNINDENT
.INDENT 0.0
.TP
.B \-\-overwrite
Overwrite the target zip file if it already exists.
.UNINDENT
.INDENT 0.0
.TP
.B \-l
.UNINDENT
.INDENT 0.0
.TP
.B \-\-list
List the files contained in the zip file in an output similar to Info\-ZIP
\fBunzip\fP utility, but with the addition of a column indicating
whether each file is seek\-optimized.
.UNINDENT
.INDENT 0.0
.TP
.B \-\-validate
Validates a SOZip file. Baseline ZIP validation is done in a light way,
limited to being able to browse through ZIP records with the InfoZIP\-based
ZIP reader used by GDAL. But validation of the SOZip\-specific aspects is
done in a more thoroughful way.
.UNINDENT
.INDENT 0.0
.TP
.B \-j
.UNINDENT
.INDENT 0.0
.TP
.B \-\-junk\-paths
Store just the name of a saved file (junk the path), and do not store
directory names. By default, sozip will store the full path (relative to the
current directory).
.UNINDENT
.INDENT 0.0
.TP
.B \-\-optimize\-from=<input.zip>
Re\-process {input.zip} to generate a SOZip\-optimized .zip. Options
\fI\%\-\-enable\-sozip\fP, \fI\%\-\-sozip\-chunk\-size\fP and
\fI\%\-\-sozip\-min\-file\-size\fP may be used in that mode.
.UNINDENT
.INDENT 0.0
.TP
.B \-\-enable\-sozip={auto|yes|no}
In \fBauto\fP mode, a file is seek\-optimized only if its size is above the
value of \fI\%\-\-sozip\-chunk\-size\fP\&.
In \fByes\fP mode, all input files will be seek\-optimized.
In \fBno\fP mode, no input files will be seek\-optimized.
.UNINDENT
.INDENT 0.0
.TP
.B \-\-sozip\-chunk\-size=<value>
Chunk size for a seek\-optimized file. Defaults to 32768 bytes. The value
is specified in bytes, or K and M suffix can be respectively used to
specify a value in kilo\-bytes or mega\-bytes.
.UNINDENT
.INDENT 0.0
.TP
.B \-\-sozip\-min\-file\-size=<value>
Minimum file size to decide if a file should be seek\-optimized, in
\-\-enable\-sozip=auto mode. Defaults to 1 MB byte. The value
is specified in bytes, or K, M or G suffix can be respectively used to
specify a value in kilo\-bytes, mega\-bytes or giga\-bytes.
.UNINDENT
.INDENT 0.0
.TP
.B \-\-content\-type=<value>
Store the Content\-Type for the file being added as a key\-value pair in the
extra field extension \(aqKV\(aq (0x564b) dedicated to storing key\-value pair metadata
.UNINDENT
.INDENT 0.0
.TP
.B <zip_filename>
Filename of the zip file to create/append to/list.
.UNINDENT
.INDENT 0.0
.TP
.B <filename>
Filename of the file to add.
.UNINDENT
.SH MULTITHREADING
.sp
The \fI\%GDAL_NUM_THREADS\fP configuration option can be set to
\fBALL_CPUS\fP or a integer value to specify the number of threads to use for
SOZip\-compressed files. Defaults to \fBALL_CPUS\fP\&.
.SH C API
.sp
Functionality of this utility can be done from C with \fI\%CPLAddFileInZip()\fP
or \fI\%VSICopyFile()\fP\&.
.SH EXAMPLES
.sp
Create a, potentially seek\-optimized, ZIP file with the content of my.gpkg:
.INDENT 0.0
.INDENT 3.5
.sp
.nf
.ft C
sozip my.gpkg.zip my.gpkg
.ft P
.fi
.UNINDENT
.UNINDENT
.sp
Create a, potentially seek\-optimized, ZIP file from the content of a source
directory:
.INDENT 0.0
.INDENT 3.5
.sp
.nf
.ft C
sozip \-r my.gpkg.zip source_dir/
.ft P
.fi
.UNINDENT
.UNINDENT
.sp
Create a, potentially seek\-optimized, ZIP file from an existing ZIP file.
.INDENT 0.0
.INDENT 3.5
.sp
.nf
.ft C
sozip \-\-convert\-from=in.zip out.zip
.ft P
.fi
.UNINDENT
.UNINDENT
.sp
List the contents of a ZIP file and display which files are seek\-optimized:
.INDENT 0.0
.INDENT 3.5
.sp
.nf
.ft C
sozip \-l my.gpkg.zip
.ft P
.fi
.UNINDENT
.UNINDENT
.sp
Validates a SOZip file:
.INDENT 0.0
.INDENT 3.5
.sp
.nf
.ft C
sozip \-\-validate my.gpkg.zip
.ft P
.fi
.UNINDENT
.UNINDENT
.SH AUTHOR
Even Rouault <even.rouault@spatialys.com>
.SH COPYRIGHT
1998-2024
.\" Generated by docutils manpage writer.
.
